const path = require('path');
// 导⼊ express 模块，⽤于创建和配置应⽤程序
const express = require('express');
// 导⼊ cors 模块，⽤于解决跨域问题
const cors = require('cors');

const morgan = require('morgan');
// 导⼊ planetsRouter 路由器实例
const planetsRouter = require('./routes/planets/planets.router');
const launchesRouter = require('./routes/launches/launches.router');

// 创建⼀个 express 应⽤程序实例
const app = express();
// 使⽤ cors 中间件解决跨域问题
app.use(cors({
    origin: 'http://localhost:3000',// 允许来⾃前端开发服务器的请求
}));
// 使⽤ morgan 中间件记录⽇志
app.use(morgan('combined'));
// 使⽤ express 内置的中间件解析 JSON 格式的请求体
app.use(express.json());
// 使⽤ express static 中间件处理静态资源
app.use(express.static(path.join(__dirname, '..', 'public')));
// 使⽤ planetsRouter 路由器实例处理 /planets 路由
app.use('/planets', planetsRouter);
// 使⽤ launchesRouter 路由器实例处理 /launches 路由
app.use('/launches', launchesRouter);
// 处理根路由的 GET 请求，加载 public/index.html ⽂件
app.get('/*', (req, res) => {
    res.sendFile(path.join(__dirname, '..', 'public', 'index.html'));
});
// 导出应⽤程序实例，以便在其他⽂件中使⽤
module.exports = app;